home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 22 / AACD 22.iso / AACD / Programming / powerd / modules.lha / modules / lib / powerd_ppc.m < prev    next >
Encoding:
Text File  |  2001-04-25  |  6.6 KB  |  174 lines

  1. OPT    LINK='powerd_ppc.lib',LINK='ppcmath.lib',CPU=603
  2.  
  3. // String/EString functions ////////////
  4. //RPROC DupEStr(a0:PTR TO CHAR)(PTR TO CHAR)
  5. //RPROC DupEStrPooled(a0:PTR,a1:PTR TO CHAR)(PTR TO CHAR)
  6. //RPROC DupStr(a0:PTR TO CHAR)(PTR TO CHAR)
  7. //RPROC DupStrPooled(a0:PTR,a1:PTR TO CHAR)(PTR TO CHAR)
  8. RPROC EStrAdd(r3:PTR TO CHAR,r4:PTR TO CHAR,r5=-1)(PTR TO CHAR)
  9. RPROC EStrCopy(r3:PTR TO CHAR,r4:PTR TO CHAR,r5=-1)(PTR TO CHAR)
  10. //LPROC EStringF(dstr:PTR TO CHAR,fstr:PTR TO CHAR,list=NIL:LIST OF LONG)(PTR TO CHAR)
  11. RPROC EStrLen(r3:PTR TO CHAR)(LONG)='lhz\tr3,-2(r3)'
  12. RPROC EStrMax(r3:PTR TO CHAR)(LONG)='lhz\tr3,-4(r3)'
  13. RPROC HiChar(r3:LONG)(LONG)
  14. //RPROC InStr(a0:PTR TO CHAR,a1:PTR TO CHAR,d0=0:LONG)(LONG)
  15. //RPROC MidEStr(a0:PTR TO CHAR,a1:PTR TO CHAR,d1,d0)(PTR TO CHAR)
  16. //LPROC MidStr(string:PTR TO CHAR,str:PTR TO CHAR,start,length)(PTR TO CHAR)
  17. RPROC IsAlpha(r3:LONG)(BOOL)
  18. RPROC IsBin(r3:LONG)(BOOL)
  19. RPROC IsHex(r3:LONG)(BOOL)
  20. RPROC IsNum(r3:LONG)(BOOL)
  21. RPROC LoChar(r3:LONG)(LONG)
  22. RPROC LowerStr(r3:PTR TO CHAR)(PTR TO CHAR)
  23. //RPROC NewEStr(d0:UWORD)(PTR TO CHAR)
  24. RPROC OStrCmp(a:PTR TO CHAR,b:PTR TO CHAR,length=-1)(LONG)
  25. RPROC OStrCmpNC(a:PTR TO CHAR,b:PTR TO CHAR,length=-1)(LONG)
  26. //LPROC ReadEStr(fh:BPTR,estr:PTR TO CHAR)(LONG)
  27. //LPROC ReadStr(fh:BPTR,str:PTR TO CHAR)(LONG)
  28. //RPROC ReEStr(a0:PTR TO CHAR)
  29. //RPROC RemEStr(a1:PTR TO CHAR)
  30. //RPROC RemStr(a1:PTR TO CHAR)
  31. //LPROC RightEStr(dstr:PTR TO CHAR,sstr:PTR TO CHAR,length)(PTR TO CHAR)
  32. //LPROC RightStr(dstr:PTR TO CHAR,sstr:PTR TO CHAR,length)(PTR TO CHAR)
  33. //RPROC SetEStr(a0:PTR TO CHAR,d0:LONG)
  34. RPROC StrAdd(r3:PTR TO CHAR,r4:PTR TO CHAR,r5=-1)(BOOL)
  35. RPROC StrCmp(r3:PTR TO CHAR,r4:PTR TO CHAR,r5=-1)(BOOL)
  36. RPROC StrCmpNC(r3:PTR TO CHAR,r4:PTR TO CHAR,r5=-1)(BOOL)
  37. RPROC StrCopy(r3:PTR TO CHAR,r4:PTR TO CHAR,r5=-1)(BOOL)
  38. RPROC StringF(r3:PTR TO CHAR,r4:PTR TO CHAR,r5=NIL:LIST OF LONG)(PTR TO CHAR)
  39. RPROC StrLen(r3:PTR TO CHAR)(LONG)
  40. RPROC TrimStr(r3:PTR TO CHAR)(PTR TO CHAR)
  41. RPROC UpperStr(r3:PTR TO CHAR)(PTR TO CHAR)
  42.  
  43. // List functions
  44.  
  45. // Math functions //////////////////////
  46. RPROC Abs(r3:L)(L)
  47. RPROC And(r3:L,r4:L)(L)='and\tr3,r4,r3'
  48. RPROC NAnd(r3:L,r4:L)(L)='nand\tr3,r4,r3'
  49. RPROC BitCount(r3:L)(L)
  50. RPROC BitSize(r3:L)(L)
  51. RPROC EOr(r3:L,r4:L)(L)='xor\tr3,r4,r3'
  52. RPROC XOr(r3:L,r4:L)(L)='xor\tr3,r4,r3'
  53. RPROC HiBit(r3:L)(L)
  54. RPROC LoBit(r3:L)(L)
  55. RPROC Or(r3:L,r4:L)(L)='or\tr3,r4,r3'
  56. RPROC Max(r3:L,r4:L)(L)
  57. RPROC Min(r3:L,r4:L)(L)
  58. RPROC NOr(r3:L,r4:L)(L)='or\tr3,r4,r3'
  59. RPROC Neg(r3:L)(L)='neg\tr3,r3'
  60. RPROC Not(r3:L)(L)='not\tr3,r3'
  61. RPROC Rol(r3:L,r4:L)(L)='rotlw\tr3,r3,r4,0,31'
  62. RPROC Ror(r3:L,r4:L)(L)='neg\tr4,r4\n\trotlw\tr3,r3,r4,0,31'
  63. RPROC Shl(r3:L,r4:L)(L)='slw\tr3,r3,r4'
  64. RPROC Shr(r3:L,r4:L)(L)='srw\tr3,r3,r4'
  65. RPROC Sign(r3:L)(L)
  66.  
  67. // FPU functions ///////////////////////
  68. RPROC Pow(f1:D,f2:D)(D)='bl\t_pow\n\t.extern\t_pow'
  69. RPROC Cos(f1:D)(D)='bl\t_cos\n\t.extern\t_cos'
  70. RPROC Sin(f1:D)(D)='bl\t_sin\n\t.extern\t_sin'
  71. RPROC Tan(f1:D)(D)='bl\t_tan\n\t.extern\t_tan'
  72. RPROC Cosh(f1:D)(D)='bl\t_cosh\n\t.extern\t_cosh'
  73. RPROC Sinh(f1:D)(D)='bl\t_sinh\n\t.extern\t_sinh'
  74. RPROC Tanh(f1:D)(D)='bl\t_tanh\n\t.extern\t_tanh'
  75. RPROC ACos(f1:D)(D)='bl\t_acos\n\t.extern\t_acos'
  76. RPROC ASin(f1:D)(D)='bl\t_asin\n\t.extern\t_asin'
  77. RPROC ATan(f1:D)(D)='bl\t_atan\n\t.extern\t_atan'
  78. RPROC FAbs(f1:D)(D)='fabs\tf1,f1'
  79. RPROC Sqrt(f1:D)(D)='bl\t_sqrt\n\t.extern\t_sqrt'
  80. //RPROC ATanh(f1:D)(D)='bl\t_atanh\n\t.extern\t_atanh'
  81. RPROC Log(f1:D)(D)='bl\t_log10\n\t.extern\t_log10'
  82. RPROC Ln(f1:D)(D)='bl\t_log\n\t.extern\t_log'
  83. //RPROC Log2(f1:D)(D)='bl\t_log2\n\t.extern\t_log2'
  84. //RPROC Int(f1:D)(D)='bl\t_\n\t.extern\t_'
  85. //RPROC Rem(f1:D)(D)='bl\t_\n\t.extern\t_'
  86. //RPROC EToX(f1:D)(D)='bl\t_\n\t.extern\t_'
  87. RPROC FNeg(f1:D)(D)='fneg\tf1,f1'
  88. RPROC FMax(f1:D,f2:D)(D)='fsub\tf0,f1,f2\n\tfsel\tf1,f0,f1,f2'
  89. RPROC FMin(f1:D,f2:D)(D)='fsub\tf0,f1,f2\n\tfsel\tf1,f0,f2,f1'
  90.  
  91. // Intuition support functions /////////
  92. RPROC Mouse()(LONG)
  93. RPROC MouseX(r3:PTR TO Window)(LONG)='lha\tr3,14(r3)'
  94. RPROC MouseXY(r3:PTR TO Window)(LONG,LONG)='lha\tr4,12(r3)\n\tlha\tr3,14(r3)'
  95. RPROC MouseY(r3:PTR TO Window)(LONG)='lha\tr3,12(r3)'
  96. RPROC WaitIMessage(r3:PTR TO Window)(LONG,LONG,LONG,LONG)
  97.  
  98. // Miscellaneous functions /////////////
  99. RPROC CtrlC()(BOOL)
  100. RPROC CtrlD()(BOOL)
  101. RPROC CtrlE()(BOOL)
  102. RPROC CtrlF()(BOOL)
  103.  
  104. RPROC Byte(r3:PTR TO BYTE)(LONG)='lbz\tr3,0(r3)\n\textsb\tr3,r3'
  105. RPROC Word(r3:PTR TO WORD)(LONG)='lha\tr3,0(r3)'
  106. RPROC Long(r3:PTR TO LONG)(LONG)='lwz\tr3,0(r3)'
  107. RPROC UByte(r3:PTR TO BYTE)(LONG)='lbz\tr3,0(r3)'
  108. RPROC UWord(r3:PTR TO WORD)(LONG)='lhz\tr3,0(r3)'
  109. RPROC ULong(r3:PTR TO LONG)(LONG)='lwz\tr3,0(r3)'
  110. RPROC Float(r3:PTR TO FLOAT)(DOUBLE)='lfs\tf1,0(r3)'
  111. RPROC Double(r3:PTR TO DOUBLE)(DOUBLE)='lfd\tf1,0(r3)'
  112.  
  113. RPROC PutByte(r3:PTR TO BYTE,r4:LONG)='stb\tr4,0(r3)'
  114. RPROC PutWord(r3:PTR TO WORD,r4:LONG)='sth\tr4,0(r3)'
  115. RPROC PutLong(r3:PTR TO LONG,r4:LONG)='stw\tr4,0(r3)'
  116. RPROC PutFloat(r3:PTR TO LONG,f1:DOUBLE)='stfs\tf1,0(r3)'
  117. RPROC PutDouble(r3:PTR TO LONG,f1:DOUBLE)='stfd\tf1,0(r3)'
  118.  
  119. RPROC ReByte(r3:BYTE)(LONG)='extsb\tr3,r3'
  120. RPROC ReWord(r3:WORD)(LONG)='extsh\tr3,r3'
  121. RPROC ReUByte(r3:UBYTE)(LONG)='andi.\tr3,r3,0xff'
  122. RPROC ReUWord(r3:UWORD)(LONG)='andi.\tr3,r3,0xffff'
  123.  
  124. RPROC Bounds(r3:LONG,r4:LONG,r5:LONG)(LONG)
  125. RPROC Even(r3:LONG)(BOOL)
  126. RPROC Odd(r3:LONG)(BOOL)
  127.  
  128. //RPROC Rnd(d0:LONG)(LONG)
  129. //RPROC RndQ(d0:LONG)(LONG)
  130.  
  131. EPROC FileLength(name:PTR TO CHAR)(LONG)
  132. //RPROC KickVersion(d0:LONG)(BOOL)
  133.  
  134. //RPROC Inp(d1:BPTR)(LONG)
  135. //RPROC Out(d1:BPTR,d2:LONG)
  136.  
  137. RPROC RealStr(r3:PTR TO UBYTE,f1:DOUBLE,r4=1)(PTR TO UBYTE)
  138. //EPROC RealEStr(estr:PTR TO UBYTE,f:DOUBLE,n=1)(PTR TO UBYTE)
  139. RPROC RealVal(r3:PTR TO UBYTE,r4=0)(DOUBLE,LONG)
  140. EPROC Val(s:PTR TO UBYTE,n=0)(LONG,LONG)
  141.  
  142. RPROC AllocVecPooled(a0:APTR,d0:LONG)(PTR)
  143. RPROC FreeVecPooled(a0:APTR,a1:PTR)
  144. RPROC SizePooled(r3:PTR)(LONG)='lwz\tr3,0(r3)'
  145. RPROC AllocVecPooledPPC(a0:APTR,d0:LONG)(PTR)
  146. RPROC FreeVecPooledPPC(a0:APTR,a1:PTR)
  147. RPROC SizePooledPPC(r3:PTR)(LONG)='lwz\tr3,0(r3)'
  148.  
  149. //RPROC New(d0:LONG)(PTR)
  150. //RPROC Free(a1:PTR)
  151.  
  152. RPROC Raise(d0=NIL:LONG,d1=NIL:LONG)
  153. EDEF    exception,exceptioninfo
  154.  
  155. EPROC OpenW(l,t,w,h,i,f,n=NIL,s=NIL,st=1,g=NIL,tags=NIL:PTR TO TagItem)(PTR TO Window)
  156. EDEF    stdrast,stdrast_coloura
  157. EPROC OpenS(w,h,d,t=0,n=NIL,tags=NIL:PTR TO TagItem)(PTR TO Screen)
  158. EPROC CloseW(w:PTR TO Window)
  159. EPROC CloseS(s:PTR TO Screen)
  160.  
  161. //RPROC SetStdRast(d1:PTR TO RastPort)(PTR TO RastPort)
  162. //RPROC Colour(d0,d1=0)
  163. //RPROC Line(d0,d1,d2,d3,d4=-1)
  164. //RPROC Plot(d0,d1,d2=-1)
  165. //RPROC Box(d0,d1,d2,d3,d4=-1)
  166. //RPROC Ellipse(d0,d1,d2,d3,d4=-1)
  167. //RPROC Circle(d0,d1,d2,d3=-1)
  168. //RPROC IBox(x,y,w,h,c=-1)
  169. //RPROC TextF(x,y,fmt,args)
  170.  
  171. // Quoted Expression functions /////////
  172. //RPROC Eval(a0:PTR)(LONG)
  173. //RPROC MapList(a2:PTR TO LONG,a1:PTR TO LONG,d0:LONG,a3:PTR TO LONG,a0:PTR TO LONG)
  174.